const http = require('http')
const url = require('url')
const path = require('path')
const fs = require('fs')
const mime = require('mime')

let server = http.createServer((req, res)=>{
  // console.log('请求进来了')
  // url路径解析
  let {pathname, query} = url.parse(req.url, true)
  // url解码
  pathname = decodeURIComponent(pathname)
  // 资源绝对路径
  let absPath = path.join(__dirname, pathname)
  // 目标资源状态处理 --判断是否存在、是文件还是目录
  fs.stat(absPath, (err,statObj) => {
    if(err) {
      res.statusCode = 404
      res.end('Not Found')
      return
    }
    
    if (statObj.isFile()) {
      // 文件 读取然后回写
      
      fs.readFile(absPath, (err, data)=>{
        res.setHeader('Content-type',mime.getType(absPath)+';charset=utf-8')
        res.end(data)
      })
    } else {
      // 目录 读取并回写目录下的index.html
      fs.readFile(path.join(absPath,'index.html'), (err, data)=>{
        res.setHeader('Content-type',mime.getType(absPath)+';charset=utf-8')
        res.end(data)
      })
    }
    
  })
})
server.listen(1234,()=>{
  console.log('http服务开始运行')
})
